#version 330 core
layout (points) in; //in关键字前声明一个布局修饰符(Layout Qualifier)。
layout (line_strip, max_vertices = 2) out; //输出的最大顶点数，超过将不会绘制
/**
几何着色器：顶点之后 片段之前  在这之间可以随意变换图元

in这个输入布局修饰符可以从顶点着色器接收下列任何一个图元值
	points：绘制GL_POINTS图元时（1）。
	lines：绘制GL_LINES或GL_LINE_STRIP时（2）
	lines_adjacency：GL_LINES_ADJACENCY或GL_LINE_STRIP_ADJACENCY（4）
	triangles：GL_TRIANGLES、GL_TRIANGLE_STRIP或GL_TRIANGLE_FAN（3）
	triangles_adjacency：GL_TRIANGLES_ADJACENCY或GL_TRIANGLE_STRIP_ADJACENCY（6）
	
out输出布局修饰符也可以接受几个图元值：
	points
	line_strip
	triangle_strip
	
*/
void main() {
//	EmitVertex和EndPrimitive，通过这两个函数生成新的数据
	gl_Position = gl_in[0].gl_Position + vec4(-0.1, 0.0, 0.0, 0.0);
	EmitVertex();
	
	gl_Position = gl_in[0].gl_Position + vec4( 0.1, 0.0, 0.0, 0.0);
	EmitVertex();
	
	EndPrimitive();
}